/*
 * Copyright (c) 2006-2020, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author                 Notes
 * 2021-03-11     JiangYnagJie       the first version
 */
#include "main.h"

struct Led_s Led;

void RGB_Init(void){
    // 获得led成员
    Led.LED_R = rt_pin_get("PE.1");
    Led.LED_G = rt_pin_get("PE.4");
    Led.LED_B = rt_pin_get("PA.2");
    // 设置引脚输出方式
    rt_pin_mode(Led.LED_R, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_G, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_B, PIN_MODE_OUTPUT);
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
    rt_pin_write(Led.LED_R, PIN_HIGH);

}

void RGB_Red(rt_bool_t on){
    if (on) {
        rt_pin_write(Led.LED_R, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_R, PIN_HIGH);
    }
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
}

void RGB_Blue(rt_bool_t on){
    if (on) {
        rt_pin_write(Led.LED_B, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_B, PIN_HIGH);
    }
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_R, PIN_HIGH);
}



void RGB_Green(rt_bool_t on){
    if (on) {
        rt_pin_write(Led.LED_G, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_G, PIN_HIGH);
    }
    rt_pin_write(Led.LED_R, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
}


void RGB_Red_Toggle(void){

}


static void rgb_thread_entry(void* p)
{
    RGB_Init();
    while(1)
    {
      rt_thread_mdelay(1000);
      RGB_Blue(1);
      rt_thread_mdelay(1000);
      rt_thread_mdelay(1000);
      RGB_Green(1);
      rt_thread_mdelay(1000);
      RGB_Red(1);
    }
}

static int Thread_RGB(void){
    rt_thread_t thread = RT_NULL;
    thread = rt_thread_create("rgb", rgb_thread_entry, RT_NULL, 512, 10, 10);
    if(thread == RT_NULL)
    {
        rt_kprintf("Thread_GRB Init ERROR");
        return RT_ERROR;
    }
    rt_thread_startup(thread);
}

//INIT_APP_EXPORT(Thread_RGB); // 线程自动初始化




